package facade;

import java.util.List;

import javax.ejb.Remote;

import vo.ArticuloVO;
import vo.CarritoVO;
import vo.ConfiguracionVO;
import vo.ElectrodomesticoVO;
import vo.InfantilVO;
import vo.ModaVO;
import vo.MuebleVO;
import vo.VentaVO;
import entities.Electrodomestico;
import entities.Infantil;
import entities.Moda;
import entities.Mueble;
import exceptions.LogNOKException;
import exceptions.VentaNOKException;

@Remote
public interface Facade {

	public void nuevoArticuloElectrodomestico(Electrodomestico entidad);

	public void nuevoArticuloMueble(Mueble entidad);

	public void nuevoArticuloModa(Moda entidad);

	public void nuevoArticuloInfantil(Infantil entidad);

	public boolean actualizarRanking(String json);
	
	public boolean iniciarSesion(String usuario, String password);
	
	public void confirmarCarrito() throws VentaNOKException, LogNOKException;
	
	public List<VentaVO> getVentas();
	
	public void updateConfiguracion(ConfiguracionVO c);
	
	public List<ConfiguracionVO> obtenerConfiguraciones();

	public ConfiguracionVO obtenerConfiguracionSeleccionada(int id);
	
	public List<ArticuloVO> getArticulos();
	
	public ElectrodomesticoVO getElectrodomestico(int codigo);
	
	public InfantilVO getInfantil(int codigo);
	
	public ModaVO getModa(int codigo);
	
	public MuebleVO getMueble(int codigo);
	
	public void agregarAlCarrito(int codigo, int cantidad);

	public List<ArticuloVO> buscarArticulo(int codigo, String nombre, String descripcion, String marca, String origen);
	
	public List<ArticuloVO> buscarMueble(int codigo, String nombre,
			String descripcion, String marca, String origen);

	public List<ArticuloVO> buscarModa(int codigo, String nombre,
			String descripcion, String marca, String origen);

	public List<ArticuloVO> buscarInfantil(int codigo, String nombre,
			String descripcion, String marca, String origen);

	public List<ArticuloVO> buscarElectrodomestico(int codigo,
			String nombre, String descripcion, String marca, String origen);
	
	public void sacarArticuloCarrito(int codigo);
	
	public void cambiarCantidadArticuloCarrito(int codigo, int cantidad);
	
	public CarritoVO getCarrito();
	
	public List<VentaVO> getVentasUsuario();
} 
